var gamejs = require('gamejs');

/*
 * NEMICI: un oggetto Animation [ciclerÃ  tra normale, colpito, esploso] caratterizzato da:
 * - Percorso, un array di punti che individuano, passo passo il percorso da seguire
 * - Velocità , un intero che dice il numero di pixel passati in un frame
 * - Vita, un intero che rappresenta la vita rimasta
 * - Alpha, un intero [0,100] che dice se e quanto il nemico Ã¨ visibile a occhio nudo di notte
 * - Danno, un intero che dice il numero di vite tolte al pianeta, se questo nemico ci arriva
 * - visibilityTime , tempo che il nemico rimane visibile dopo il ping
 * - detected , un intero che indica se il nemico e` stato rilevato dal radar e quindi e` visibile alle armi
 * - Valore, un intero che ci dice quanto prendiamo uccidendo questo nemico.
 */

/**
 * Creates an enemy
 *
 * @extends Sprite
 * @constructor
 */
var Enemy = exports.Enemy = function(match, rect) {
	Enemy.superConstructor.apply(this, arguments);
	this.path = [];
	this.pathIndex = 0;
	this.speed = 20 + (40 * Math.random());
	this.health = 1;
	this.alpha = 100;
	this.damage = 1;
	this.visibilityTime = 1000;//1000ms
	this.detected = 0;
	this.prize = 1;
	this.currentMatch = match;
	this.originalImage = gamejs.image.load("./resources/images/enemy.png");
	var dims = this.originalImage.getSize();
	this.originalImage = gamejs.transform.scale(
			this.originalImage,
			[dims[0] * (0.1), dims[1] *  (0.1)]
	);
	this.rotation = -90;
	this.image = gamejs.transform.rotate(this.originalImage, this.rotation);
	this.rect = new gamejs.Rect(rect);
}

/**
 * Extending Sprite with Enemy
 */
gamejs.utils.objects.extend(Enemy, gamejs.sprite.Sprite);

/**
 * Updates the position of the Enemy
 */
Enemy.prototype.update = function(msDuration) {
}

/**
 * Subtracts health points
 *alè
 * @param {number} hitRate The amount of health to subtract
 */
Enemy.prototype.hit = function(hitRate) { }

/**
 * Set detected flag to 1, it performs also a timer of visibility
 *
 * @param {boolean} detected True to turn detected mode on, false to turn it off
 */
Enemy.prototype.setDetected = function(detected) {};
/**
 * Return detected flag
 *
 * @return {boolean} true if detected > 0
 */
Enemy.prototype.isDetected = function() {}


